package com.nantong.admin.annotation;

import java.lang.annotation.*;

/**
 * 权限注册注解
 * 用于自动注册接口权限到数据库
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PermissionRegister {
    
    /**
     * 权限名称
     */
    String name();
    
    /**
     * 权限标识
     */
    String key();
    
    /**
     * 父权限标识
     * 为空则为顶级权限
     */
    String parentKey() default "";
    
    /**
     * 权限类型（1目录 2菜单 3按钮）
     */
    int type() default 3;
    
    /**
     * 权限描述
     */
    String remark() default "";
    
    /**
     * 是否启用
     */
    boolean enabled() default true;
    
    /**
     * 前端路由路径
     * 仅当type=1（菜单）时有效
     */
    String path() default "";
    
    /**
     * 前端组件路径
     * 仅当type=1（菜单）时有效
     */
    String component() default "";
    
    /**
     * 菜单图标
     * 仅当type=1（菜单）时有效
     */
    String icon() default "";
    
    /**
     * 排序
     */
    int sortOrder() default 0;
    
    /**
     * 是否隐藏菜单
     * 仅当type=1（菜单）时有效
     */
    boolean isHidden() default false;
}
